Міністерство освіти і науки, молоді та спорту України
Прикарпатський національний університет
імені Василя Стефаника
Кафедра радіофізики і електроніки
Лабораторна робота №3
Арифметичні команди восьмирозрядного мікропроцесора КР580ВМ80 (Intel 8080).
Івано-Франківськ – 2011
1. Мета роботи
Вивчити основні типи арифметичних і логічних команд та послідовність їх виконання восьмирозрядним мікропроцесором, навчитися створювати програми з їх використанням.
2. Обладнання
Програма - емулятор мікропроцесорної системи на базі одно-кристального КР580ВМ80.
3. Короткі відомості з теорії
3.1. Арифметичні команди.
Якими б потужними та складними пристроями не рахували комп'ютери, всі вони побудовані на основі мікропроцесорів, які можуть виконувати тільки найпростіші арифметичні та логічні операції. До них відноситься операції ДОДАВАННЯ та ВІДНІМАННЯ. Такі операції, як МНОЖЕННЯ та ДІЛЕННЯ реалізуються програмним методом за допомогою операцій ДОДАВАННЯ, ВІДНІМАННЯ та деяких інших логічних операцій. В загальному випадку операція ВІДНІМАННЯ зводиться до операції ДОДАВАННЯ числа, записаного в оберненому коді, однак реалізація віднімання таким способом вимагає значних програмних витрат (збільшує довжину коду програми та ускладнює її).
Мікропроцесор КР580ВМ80 може виконувати операції ДОДАВАННЯ над 8-ми та 16-ти розрядними двійковими числами. Операції ВІДНІМАННЯ застосовні тільки до 8-ми розрядних чисел.
Виконання арифметичних команд впливає на значення регістру стану (прапорцевого регістру)
Регістр стану (прапорцевий регістр) – регістр, який містить 5 двійкових розрядів, що називаються прапорцями, і які містять спеціальні ознаки результатів деяких операцій. Часом його називають регістром ознак, або регістром бітів умов. Регістр містить такі прапорці: прапорець нуля (Z - zero), прапорець перенесення (C - carry), прапорець знаку (S - sign), прапорець парності (P - parity) та прапорець додаткового перенесення (AC – auxiliary carry). Прапорці завжди встановлюються чи скидаються автоматично після виконання наступної команди, яка впливає на прапорці, в залежності від результату операції. Прапорець вважається встановленим, якщо відповідний розряд регістра набуває значення 1, і скидається, якщо значення розряду 0. Стани прапорців використовують в командах умовного переходу. Результати виконання арифметичних і логічних операцій над вмістом акумулятора, регістрів загального призначення та комірок пам’яті впливають на прапорці наступним чином:
Прапорець нуля встановлюється в 1, якщо в результаті виконання якої-небудь команди отримано нульовий результат (всі біти задіяного регістру чи комірки пам’яті встановлено в 0) і скидається в 0 в випадку ненульового результату.
Прапорець перенесення встановлюється в 1, якщо в результаті операцій додавання та зсуву появляється одиниця перенесення зі старшого розряду байта даних, а також, якщо виконується запозичення зі старшого розряду після виконання операцій віднімання чи порівняння. В іншому випадку прапорець скидається в 0.
Прапорець знаку встановлюється в 1, якщо в результаті виконання операцій появляється одиниця в старшому розряді байту даних (вказує на від’ємний результат) і скидається в 0 в випадку нульового значення старшого розряду (вказує на додатній результат).
Прапорець парності встановлюється в 1, якщо після виконання операцій сума одиниць в байті даних парна (значення суми по модулю 2 рівне 0) і скидається в 0, якщо кількість одиниць непарна.
Прапорець додаткового перенесення встановлюється в 1, якщо в результаті виконання команди появляється одиниця перенесення з третього розряду байта даних в четвертий і скидається в 0, якщо такого перенесення нема. Прапорець додаткового перенесення використовується в багатьох схемах обчислень, однак він особливо необхідний для додавання чисел в двійково-десятковій формі.
Деякі з арифметичних команд можуть враховувати значення окремих прапорців стану, які були встановлені в результаті виконання попередніх операцій. До таких команд належить додавання з врахуванням...